package com.ruoyi.system.service;

import java.util.List;
import com.ruoyi.system.domain.ContractTemplate;

/**
 * u5408u540cu6a21u677fu7ba1u7406 u670du52a1u5c42
 * 
 * @author ruoyi
 */
public interface IContractTemplateService 
{
    /**
     * u67e5u8be2u5408u540cu6a21u677fu5217u8868
     * 
     * @param contractTemplate u5408u540cu6a21u677fu4fe1u606f
     * @return u5408u540cu6a21u677fu96c6u5408
     */
    public List<ContractTemplate> selectContractTemplateList(ContractTemplate contractTemplate);

    /**
     * u6839u636eu7c7bu578bIDu67e5u8be2u5173u8054u7684u5408u540cu6a21u677fu5217u8868
     * 
     * @param typeId u5408u540cu7c7bu578bID
     * @return u5408u540cu6a21u677fu96c6u5408
     */
    public List<ContractTemplate> selectContractTemplatesByTypeId(Long typeId);

    /**
     * u901au8fc7u6a21u677fIDu67e5u8be2u5408u540cu6a21u677f
     * 
     * @param templateId u6a21u677fID
     * @return u5408u540cu6a21u677fu4fe1u606f
     */
    public ContractTemplate selectContractTemplateByTemplateId(Long templateId);

    /**
     * u6839u636eu6a21u677fu540du79f0u67e5u8be2u5408u540cu6a21u677f
     * 
     * @param templateName u6a21u677fu540du79f0
     * @return u5408u540cu6a21u677fu4fe1u606f
     */
    public ContractTemplate selectContractTemplateByName(String templateName);

    /**
     * u68c0u67e5u5408u540cu6a21u677fu540du79f0u662fu5426u552fu4e00
     * 
     * @param contractTemplate u5408u540cu6a21u677fu4fe1u606f
     * @return u7ed3u679cu7801 true u552fu4e00 false u4e0du552fu4e00
     */
    public boolean checkContractTemplateNameUnique(ContractTemplate contractTemplate);

    /**
     * u65b0u589eu5408u540cu6a21u677f
     * 
     * @param contractTemplate u5408u540cu6a21u677fu4fe1u606f
     * @return u7ed3u679c
     */
    public int insertContractTemplate(ContractTemplate contractTemplate);

    /**
     * u4feeu6539u5408u540cu6a21u677f
     * 
     * @param contractTemplate u5408u540cu6a21u677fu4fe1u606f
     * @return u7ed3u679c
     */
    public int updateContractTemplate(ContractTemplate contractTemplate);

    /**
     * u5220u9664u5408u540cu6a21u677f
     * 
     * @param templateId u6a21u677fID
     * @return u7ed3u679c
     */
    public int deleteContractTemplateByTemplateId(Long templateId);

    /**
     * u6279u91cfu5220u9664u5408u540cu6a21u677f
     * 
     * @param templateIds u9700u8981u5220u9664u7684u6570u636eu4e3bu952eu96c6u5408
     * @return u7ed3u679c
     */
    public int deleteContractTemplateByTemplateIds(Long[] templateIds);

    /**
     * u6279u91cfu5bfcu5165u5408u540cu6a21u677f
     * 
     * @param templateList u5408u540cu6a21u677fu5217u8868
     * @param createBy u521bu5efa
     * @return u6210u529fu5bfcu5165u7684u6570u91cf
     */
    public int batchImportContractTemplates(List<ContractTemplate> templateList, String createBy);
}
